package com.headwind.logistics.carrier.controller;

import com.headwind.logistics.carrier.dto.GpsDto;
import com.headwind.logistics.carrier.service.inter.GpsServiceInter;
import com.headwind.logistics.common.pojo.Gps;
import com.headwind.logistics.common.util.LayuiUtil;
import com.headwind.logistics.common.util.RestResult;
import com.headwind.logistics.common.util.ResultGenerator;
import com.headwind.logistics.log.annotate.Log;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.annotation.Resource;
import java.util.List;

/**
 * @Author QT
 * @Date 2020/7/28 10:06
 * @Version 1.0
 * @DESCRIPTION Gps控制器层
 */
@Controller
public class GpsController {
    //Gps业务逻辑接口层
    @Resource
    private GpsServiceInter gpsServiceInter;
    //api统一响应格式
    @Resource
    private ResultGenerator resultGenerator;
    /**
     * 查询所有gps数据根据Gps型号模糊查询并分页
     * @param gpsType gps型号
     * @param page 页码
     * @param limit 行数
     * @return
     */
    @GetMapping("/admin/carrier/queryAllGps")
    @ResponseBody
    @Log("查询所有gps数据根据Gps型号模糊查询并分页")
    public LayuiUtil queryAllGps(String gpsType, Integer page, Integer limit){
        List<GpsDto> list= gpsServiceInter.queryAllGps(gpsType,page,limit);
        return LayuiUtil.data(gpsServiceInter.queryAllGps(gpsType,null,null).size(),list);
    }
    /**
     * 修改Gps状态和领取时间
     * @param gps gps实体对象
     * @return
     */
    @PostMapping("/admin/carrier/updateGpsStatusAndGetTime")
    @ResponseBody
    @Log("修改Gps状态和领取时间")
    public RestResult updateGpsStatusAndGetTime(Gps gps) {
        int count=gpsServiceInter.updateGpsStatusAndGetTime(gps);
        if(count>0){
            return resultGenerator.getSuccessResult("更改成功",count);
        }
        return resultGenerator.getFailResult("更改失败",count);
    }
    /**
     * 修改Gps状态
     * @param gps gps实体对象
     * @return
     */
    @PostMapping("/admin/carrier/updateGpsStatus")
    @ResponseBody
    @Log("修改Gps状态")
    public RestResult updateGpsStatus(Gps gps) {
        int count=gpsServiceInter.updateGpsStatus(gps);
        if(count>0){
            return resultGenerator.getSuccessResult("更改成功",count);
        }
        return resultGenerator.getFailResult("更改失败",count);
    }
    /**
     * 删除Gps信息
     * @param gps gps实体对象
     * @return
     */
    @PostMapping("/admin/carrier/deleteGps")
    @ResponseBody
    @Log("修改Gps状态")
    public RestResult deleteGps(Gps gps) {
        int count=gpsServiceInter.deleteGps(gps);
        if(count>0){
            return resultGenerator.getSuccessResult("删除成功",count);
        }
        return resultGenerator.getFailResult("删除失败",count);
    }
    /**
     * 新增Gps信息
     * @param gps gps实体对象
     * @return
     */
    @PostMapping("/admin/carrier/addGps")
    @ResponseBody
    @Log("新增Gps信息")
    public RestResult addGps(Gps gps) {
        int count=gpsServiceInter.addGps(gps);
        if(count>0){
            return resultGenerator.getSuccessResult("新增成功",count);
        }
        return resultGenerator.getFailResult("新增失败",count);
    }
}
